﻿using System.Collections.Generic;
using MIAP.DataAccess.Interfaces;
using MIAP.Entidades;
using System.Linq;

namespace MIAP.Negocio
{
    public class AtenderSolicitudNegocio
    {
        #region Campos

        /// <summary>
        /// Instancia para el acceso a datos de Solicitud de recargas de archivos.
        /// </summary>
        private readonly ISolicitudRecargaArchivoDao daoSolicitud;

        #endregion

        #region Constructor

        /// <summary>
        /// Inicializa una instancia de <see cref="AtenderSolicitudNegocio"/>
        /// </summary>
        public AtenderSolicitudNegocio()
        {
            this.daoSolicitud = DataAccessFactory.Instance.CreateSolicitudRecargasDao();
        }

        #endregion

        #region Metodos

        /// <summary>
        /// Obtiene las solicitudes con estatus pendiente.
        /// </summary>
        /// <param name="idAutorizador">Es el id del autorizador por el que se filtrarán los archivos.</param>
        /// <returns>Lista de solicitudes con estatus pendiente</returns>
        public List<SolicitudRecargaArchivoInfo> GetSolicitudesPendientes(int idAutorizador)
        {
            return this.daoSolicitud.GetSolicitudesPendientes(idAutorizador).ToList();
        }

        /// <summary>
        /// Modifica el estatus de la solicitud.
        /// </summary>
        /// <param name="solicitud">Es la información de la solicitud que será modificada.</param>
        /// <param name="autorizarSolicitud">Indicador si a solicitud fue autorizada.</param>
        /// <param name="user">Usuario que ejecuta la operación.</param>        
        public void EditEstatusSolicitud(SolicitudRecargaArchivoInfo solicitud, bool autorizarSolicitud, string user)
        {
            this.daoSolicitud.EditEstatusSolicitud(solicitud, autorizarSolicitud, user);
        }
       
        #endregion
    }
}
